package com.jt.controller;

import com.jt.pojo.User;
import com.jt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@CrossOrigin
@RequestMapping("/axios")
public class AxiosController {

    @Autowired
    private UserService userService;

    @GetMapping("/getUserById")
    public User getUserById(Integer id) {
        return userService.findUserById(id);
    }
    @GetMapping("/user/{sex}/{age}")
    public List<User> getUserBySA(User user){
        return userService.getUserBySA(user);
    }

    @DeleteMapping("deleteById")
    public String deleteById(Integer id){
        userService.deleteById(id);
        return "删除成功!!!";
    }
    /**
     * json与user对象互转
     * 1.user对象转化为json: @ResponseBody
     *
     * 101.@RestController内包含@Controller和@ResponseBody注解，所有接受请求时已经转华为json
     *
     * 2.json转化为user对象: @RequestBody （和@ResponseBody对称）
     *
     * 201.使用时只可以在参数处使用，在参数对象前添加此注解即可
     * */
    @PostMapping("saveUser")
    public String saveUser(@RequestBody User user){
        userService.saveUser(user);
        return "新增成功!!!";
    }
    @PutMapping("updateUser")
    public String updateUser(@RequestBody User user){
        userService.updateUser(user);
        return "修改成功!!!";
    }
    /**注意事项：restFul可以为对象的属性赋值
     * 注意restFul的{参数}接参名称不要与对象中的属性名重名，否则会覆盖
     * 引发BUG
     * */
    @PutMapping("updateUserByName/{whereName}")
    public String updateUserByName(@RequestBody User user,
                                   @PathVariable String whereName){
         userService.updateUserByName(user,whereName);
        return "成功修改数据!!!";
    }
}